#include #include // Variables for test data int moistRead; unsigned long startMillis; unsigned long currentMillis; const unsigned long period = 1000; const int sensor_pin = D1; // MAC Address of responder - edit as required uint8_t broadcastAddress[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; // Define a data structure typedef struct struct_message { int b; } struct_message; // Create a structured object struct_message myData; // Peer info esp_now_peer_info_t peerInfo; // Callback function called when data is sent void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print("\r\nLast Packet Send Status:\t"); Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"); } void setup() { // Set up Serial Monitor Serial.begin(115200); // Set ESP32 as a Wi-Fi Station WiFi.mode(WIFI_STA); startMillis = millis(); pinMode(sensor_pin, INPUT); // Initilize ESP-NOW if (esp_now_init() != ESP_OK) { Serial.println("Error initializing ESP-NOW"); return; } // Register the send callback esp_now_register_send_cb(OnDataSent); // Register peer memcpy(peerInfo.peer_addr, broadcastAddress, 6); peerInfo.channel = 0; peerInfo.encrypt = false; // Add peer if (esp_now_add_peer(&peerInfo) != ESP_OK) { Serial.println("Failed to add peer"); return; } } void loop() { if (currentMillis - startMillis >= period) { moistRead = analogRead(sensor_pin); Serial.println(moistRead); } // Create test data // Format structured data moistRead = map(moistRead,4095,1100,0,100); myData.b = (uint8_t) moistRead; Serial.println((uint8_t) moistRead); // Send message via ESP-NOW esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *)&myData, sizeof(myData)); if (result == ESP_OK) { Serial.println("Sending confirmed"); } else { Serial.println("Sending error"); } delay(2000); }